package cn.tedu.csms.order.pojo.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AccessLevel;
import lombok.Data;
import lombok.experimental.FieldDefaults;

import java.math.BigDecimal;
import java.util.Date;

@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
public class OrderVO {

    @ApiModelProperty(value = "订单id")
    Long id;
    @ApiModelProperty(value = "订单编号")
    String orderNumber;
    @ApiModelProperty(value = "用户id")
    Long userId;
    @ApiModelProperty(value = "用户姓名")
    String username;
    @ApiModelProperty(value = "用户电话")
    String userPhone;
    @ApiModelProperty(value = "商家id")
    Long merchantId;
    @ApiModelProperty(value = "商家名称")
    String merchantName;
    @ApiModelProperty(value = "商品id")
    Long productId;
    @ApiModelProperty(value = "商品名称")
    String productName;
    @ApiModelProperty(value = "商品价格")
    BigDecimal productPrice;
    @ApiModelProperty(value = "商品数量")
    Integer productCount;
    @ApiModelProperty(value = "订单创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date orderTime;
    @ApiModelProperty(value = "订单状态")
    String orderStatus;
    @ApiModelProperty(value = "支付方式")
    String paymentMethod;
    @ApiModelProperty(value = "支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date paymentTime;
    @ApiModelProperty(value = "支付平台交易号")
    String paymentTransactionId;
    @ApiModelProperty(value = "订单总金额")
    BigDecimal totalAmount;
    @ApiModelProperty(value = "实付金额")
    BigDecimal paidAmount;
    @ApiModelProperty(value = "运费")
    BigDecimal shippingFee;
    @ApiModelProperty(value = "优惠金额")
    BigDecimal discountAmount;
    @ApiModelProperty(value = "优惠券代码")
    String couponCode;
    @ApiModelProperty(value = "优惠券抵扣金额")
    BigDecimal couponDiscount;
    @ApiModelProperty(value = "促销码")
    String promoCode;
    @ApiModelProperty(value = "促销折扣金额")
    BigDecimal promoDiscount;
    @ApiModelProperty(value = "积分折扣金额")
    BigDecimal pointsDiscount;
    @ApiModelProperty(value = "发货时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date shippingTime;
    @ApiModelProperty(value = "送达时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date deliveryTime;
    @ApiModelProperty(value = "收货人姓名")
    String recipientName;
    @ApiModelProperty(value = "收货人电话")
    String recipientPhone;
    @ApiModelProperty(value = "收获人地址")
    String shippingAddress;
    @ApiModelProperty(value = "配送方式")
    String shippingMethod;
    @ApiModelProperty(value = "物流公司")
    String logisticsCompany;
    @ApiModelProperty(value = "物流跟踪号")
    String trackingNumber;
    @ApiModelProperty(value = "退款状态")
    String refundStatus;
    @ApiModelProperty(value = "退款金额")
    BigDecimal refundAmount;
    @ApiModelProperty(value = "退款时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date refundTime;
    @ApiModelProperty(value = "用户备注")
    String customerRemark;
    @ApiModelProperty(value = "商家备注")
    String merchantRemark;
    @ApiModelProperty(value = "订单更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date updateTime;


}
